package domain

import (
	"github.com/hlhutu/gormplus"
	"ruoyi-go/internal/framework/db"
)

/**
 * 系统参数配置表 SysConfig
 */
type SysConfig struct {
	// 参数主键
	ConfigId int64 `json:"configId" gorm:"column:config_id" form:"configId"`

	// 参数名称
	ConfigName string `json:"configName" gorm:"column:config_name" form:"configName"`

	// 参数键名
	ConfigKey string `json:"configKey" gorm:"column:config_key" form:"configKey"`

	// 参数键值
	ConfigValue string `json:"configValue" gorm:"column:config_value" form:"configValue"`

	// 系统内置（Y是 N否）
	ConfigType string `json:"configType" gorm:"column:config_type" form:"configType"`
}

// TableName 映射数据库表名
func (m SysConfig) TableName() string {
	return "sys_config"
}

// SysConfig Model 定义
type sysConfigModel struct {
	gormplus.Model[SysConfig] // 使用泛型封装基础操作
}

// SysConfigModelInst 单例变量初始化
var sysConfigModelInst *sysConfigModel

// SysConfigModel 获取 SysConfig 单例模型
func SysConfigModel() *sysConfigModel {
	if sysConfigModelInst == nil {
		// 将 SysConfig 注册到 Gorm DB，并初始化
		sysConfigModelInst = &sysConfigModel{Model: gormplus.NewModel(SysConfig{}, db.GormDB)}
	}
	return sysConfigModelInst
}
